/**
 * for await of 
 *  当async函数中需要同步执行的函数比较多的时候，用await fn(..)方式会出现很多个，代码看上去就不怎么优雅了。这个时候
 *  有一个循环的方式就优雅得多了
 */
const promiseFn = (time, isResolve = true) => {
    return new Promise((resolve, reject) => {
        setTimeout(() => {
            isResolve ? resolve(`${time}毫秒执行--成功`) : reject(`${time}毫秒执行--失败`)
        }, time)
    })
}

const promiseList = async () => {
    const data = [promiseFn(600), promiseFn(400), promiseFn(800), promiseFn(200)]
    //循环输出（成功的Promise才会输出否则会产生异常），按顺序执行输出
    //for await of只能在async的函数中使用
    for await (let res of data) {
        console.log(res)
    }

}

promiseList()